/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DAO;
import Classes.CidadeClass;
import Classes.ProdutoPSemanaClass;
import java.util.List;
import javax.swing.JOptionPane;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
/**
 *
 * @author Carlos Schaefer
 */
public class ProdutoPSemanaDAO {
    private Session session;
    
    public ProdutoPSemanaDAO(){
            session = Util.HibernateUtil.getSessionFactory().openSession(); 
            }
    
    public void insert(ProdutoPSemanaClass PordSem){
        Transaction t = session.beginTransaction();
        session.save(PordSem);
        t.commit();
        }
    
    public void update(ProdutoPSemanaClass PordSem){
        Transaction t = session.beginTransaction();
        session.merge(PordSem);//mesmo que o update
        t.commit();
        }
    public void delete(ProdutoPSemanaClass PordSem){
        Transaction t = session.beginTransaction();
        session.delete(PordSem);//mesmo que o update
        t.commit();
        }
    //buscar uma marca
    public ProdutoPSemanaClass findbyid(int id){
        return (ProdutoPSemanaClass)session.load(ProdutoPSemanaClass.class, id);//loadsó funciona com a chave primaria
        }
    //Buscar todos os produtos
    public List<ProdutoPSemanaClass> findall(){
        Query qu = session.createQuery("From ProdutoPSemanaClass");
        return qu.list();
        }
    public List<ProdutoPSemanaClass> ListarAgrupado(){
        Query qu = session.createQuery("From ProdutoPSemanaClass group by numerosemana Order by ano, numerosemana");
        return qu.list();
        }
    
    public int retornaQtdPedSem(int semana) {
        Query sql = session.createSQLQuery(" select numerosemana from tbl_ProdutoPSemana "
                                         + " where numerosemana= " + semana + " and seq_cliente is not null");
        List results = sql.list();

        int v = 0;
        for (int j = 0; j < results.size(); j++) {
            try {
                
                v=v+1;
                
            } catch (Exception ex) {
                System.err.println("Initial SessionFactory creation failed." + ex);
                //JOptionPane.showMessageDialog(this, "Erro");
            }
        }
        //return Double.parseDouble("" + sql.uniqueResult());
        return v;
    }

    public int retornaQtdPrevSem(int i) {
        Query sql = session.createSQLQuery(" select numerosemana from tbl_ProdutoPSemana "
                                         + " where numerosemana= " + i +" and seq_cliente is null" );
        List resultados = sql.list();

        int h = 0;
        for (int j = 0; j < resultados.size(); j++) {
            try {
                
                h=h+1;
                
            } catch (Exception hx) {
                System.err.println("Initial SessionFactory creation failed." + hx);
                //JOptionPane.showMessageDialog(this, "Erro");
            }
        }
        
        return h;     
    }

    public void zerarpedidosemana(int semana, int ano) {
         Transaction t =session.beginTransaction();
          String hql = ("DELETE FROM tbl_produtopsemana WHERE numerosemana = "+semana+" and Ano = "+ano);
                    
        session.createSQLQuery(hql).executeUpdate();
        t.commit();
        
        
    }

    public List<ProdutoPSemanaClass> findallReports() {
        
        Query qu = session.createQuery("From ProdutoPSemanaClass where seq_cliente is not null ");//and dataconclusao < GETDATE()
        return qu.list();
        
        
        
    }
    
    
    
}
